import axios from 'axios'
import { ElLoading  } from 'element-plus'
import router from '../router/index'
import {getToken,delToken} from '../utils/unit'

// 创建axios的对象
const instance = axios.create({
    baseURL: "http://120.24.64.5:8088/mall-admin",  //配置固定域名
    timeout: 5000,
    withCredentials: true, // 异步请求携带cookie
	headers: {
			// 设置后端需要的传参类型
			// 'Content-Type': ' application/x-www-form-urlencoded;charset:utf-8;',
            'Content-Type': 'application/json',

		},
})
 let loading;
 //显示loading
 const showloading=()=>{
        loading= ElLoading.service({
        text: "拼命加载中，请稍后...",
        background: 'rgba(0, 0, 0, 0.7)',
        spinner: 'el-icon-loading',
    })
 }
 //隐藏loading
 const hiddenloading=()=>{
        loading.close()
 }
// 请求拦截
// 所有的网络请求都会走这个方法,可以在请求添加自定义内容
instance.interceptors.request.use(
    function (config) {
        showloading()
        if (getToken()) {
            config.headers.Authorization=getToken()
        }
        return config
    },
    function (err) {
        return Promise.request(err)
    }
)
 
// 响应拦截
// 此处可以根据服务器返回的状态码做相应的数据
instance.interceptors.response.use(
    function (res) {
    hiddenloading()
    if (res.data.code===401) {
        //token过期返回登录页
        alert(res.data.message);
        delToken()
        router.push('/login')
    }else if (res.data.code===404) {
        alert(res.data.message)
    }
     return res.data
    },
    function (err) {
        return Promise.reject(err)
    }
)
 

 
export default instance;